home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmiSoft / Dev / misc / WHDLoad_dev.lha / WHDLoad / Install Templates / Std-Files Install / install < prev    next >
Encoding:
Text File  |  2003-06-03  |  10.2 KB  |  346 lines

  1. ; $Id: install 1.4 2003/06/03 05:37:03 wepl Exp wepl $
  2.  
  3. (set #sub-dir "data")            ;sub directory containing data files
  4. (set #readme-file "ReadMe")        ;name of readme file
  5. (set #man-file "Manual")        ;name of manual file
  6. (set #hint-file "Hints")        ;name of hint file
  7. (set #sol-file "Solution")        ;name of solution file
  8. (set #highs-file "highs")        ;name of high scores file
  9. (set #prefix @app-name)            ;name of slave, directory
  10.  
  11. (set #ico_suffix_00 "inf")        ;Icon suffixes (not all of these must exist)
  12. (set #ico_suffix_01 "magicwb")
  13. (set #ico_suffix_02 "romicon")
  14. (set #ico_suffix_03 "newicon")
  15. (set #ico_suffix_04 "newexot")
  16. (set #ico_suffix_05 "coloricon")
  17. (set #ico_suffix_06 "colexot")
  18. (set #ico_suffix_07 "colfrank")
  19. (set #ico_suffix_08 "colchris")
  20. (set #ico_suffix_09 "colcode")
  21. (set #ico_suffix_10 "colcfou")
  22. (set #ico_suffix_11 "colakira")
  23.  
  24. ;Icon descriptions (max 21 chars if you have > 9 entries, or 27 chars otherwise.
  25. ;These are renamed to "gamename.info" so no illegal characters like :/* etc
  26. ;          "123456789012345678901234567"
  27. (set #ico_desc_00 "Normal")
  28. (set #ico_desc_01 "MagicWB Icon")
  29. (set #ico_desc_02 "RomIcon")
  30. (set #ico_desc_03 "NewIcon")
  31. (set #ico_desc_04 "NewIcon by Exotica")
  32. (set #ico_desc_05 "OS3.5 Icon")
  33. (set #ico_desc_06 "OS3.5 Icon by Exotica")
  34. (set #ico_desc_07 "OS3.5 Icon by Frank")
  35. (set #ico_desc_08 "OS3.5 Icon by Chris Vella")
  36. (set #ico_desc_09 "OS3.5 Icon by Codetapper")
  37. (set #ico_desc_10 "OS3.5 Icon by CFou")
  38. (set #ico_desc_11 "OS3.5 Icon by Akira")
  39.  
  40. (procedure P_Install
  41.   (set #version
  42.     (askchoice
  43.       (prompt ("Which version of %s do you like to install?" @app-name))
  44.       (default 0)
  45.       (choices "Floppy Disk version" "CDTV version")
  46.       (help @askchoice-help)
  47.     )
  48.   )
  49.   (select #version
  50.     (
  51.       (set #AD_disk "A")
  52.       (P_disk)
  53.       (copyfiles
  54.         (help @copyfiles-help)
  55.         (source ("%s:" #AD_disk))
  56.         (dest #dest)
  57.         (pattern "~(c|devs|s|.#?|intro)")
  58.       )
  59.       (set #AD_disk "B")
  60.       (P_disk)
  61.       (copyfiles
  62.         (help @copyfiles-help)
  63.         (source ("%s:" #AD_disk))
  64.         (dest #dest)
  65.         (pattern "~(#?.info)")
  66.       )
  67.     )
  68.     (
  69.       (message ("\nInsert your %s CD in any drive." @app-name))
  70.       (copyfiles
  71.         (help @copyfiles-help)
  72.         (source "HolidayMakerCDTV:")
  73.         (pattern "(fonts|[1-9hnp]#?|de|map|se)")
  74.         (dest #dest)
  75.       )
  76.       (copyfiles
  77.         (help @copyfiles-help)
  78.         (source "HolidayMakerCDTV:libs")
  79.         (pattern "diskfont.library")
  80.         (dest #dest)
  81.       )
  82.     )
  83.   )
  84. )
  85.  
  86. ;****************************
  87. ;----------------------------
  88. ; checks if given program is installed, if not abort install
  89. ; #program - to check
  90.  
  91. (procedure P_ChkRun
  92.   (if (= 0 (run ("cd SYS:\nWhich %s >NIL:" #program)))
  93.     ("")
  94.     (abort
  95.       (cat
  96.     "You must install \"" #program "\" first!\n"
  97.     "It must be accessible via the path.\n"
  98.     "You can find it in the WHDLoad package."
  99.       )
  100.     )
  101.   )
  102. )
  103.  
  104. ;----------------------------
  105. ; Wait for inserting disk
  106. ; IN:  #AD_disk - name of disk
  107. ; OUT: -
  108.  
  109. (procedure P_disk
  110.   (askdisk
  111.     (dest #AD_disk)
  112.     (prompt ("\nInsert Disk \"%s\" in any drive!" #AD_disk))
  113.     (help @askdisk-help)
  114.   )
  115. )
  116.  
  117. ;----------------------------
  118. ; copy file including icon if exist
  119. ; #copy-file - name of file to copy
  120.  
  121. (procedure P_CopyFile
  122.   (if (exists #copy-file) (
  123.     (copyfiles
  124.       (help @copyfiles-help)
  125.       (source #copy-file)
  126.       (dest #dest)
  127.     )
  128.     (if (exists ("%s.info" #copy-file)) (
  129.       (copyfiles
  130.         (help @copyfiles-help)
  131.         (source ("%s.info" #copy-file))
  132.         (dest #dest)
  133.       )
  134.       (tooltype
  135.         (dest (tackon #dest #copy-file))
  136.         (noposition)
  137.       )
  138.     ))
  139.   ))
  140. )
  141.  
  142. ;****************************
  143.  
  144. (if (< @installer-version (+ (* 44 65536) 10))
  145.   (
  146.     (message
  147.       (cat
  148.         "Warning: your installer is outdated.\n"
  149.         "Some features of this installation won't be available, "
  150.         "such as icon show and drawer opening. "
  151.         "You have version " (/ @installer-version 65536) "." 
  152.         (BITAND @installer-version 65535) ", recommended is version 44.10. "
  153.         "The 'installer' 44.10 comes with OS 3.5 but is also contained in the NDK 3.9. "
  154.         "You may also use the InstallerNG by Jens Tröger."
  155.         "\n\n"
  156.         "The installers can be obtained from the net:\n"
  157.         "http://www.amiga.com/3.9/download/NDK3.9.lha\n"
  158.         "aminet:util/sys/InstallerNG.lha"
  159.       )
  160.     )
  161.     (set #newstuff 0)
  162.   )
  163.   (set #newstuff 1)
  164. )
  165.  
  166. (if (exists #readme-file)
  167.   (if (= 0 (run ("SYS:Utilities/Multiview %s" #readme-file)))
  168.     ("")
  169.     (run ("SYS:Utilities/More %s" #readme-file))
  170.   )
  171. )
  172.  
  173. (set #program "WHDLoad")
  174. (P_ChkRun)
  175.  
  176. (if (getenv "WHDLInstPath")
  177.   (set @default-dest (getenv "WHDLInstPath"))
  178. )
  179. (set #dest
  180.   (askdir
  181.     (prompt
  182.       (cat
  183.     "Where should \"" @app-name "\" be installed?\n"
  184.     "A drawer \"" #prefix "\" will be automatically created."
  185.       )
  186.     )
  187.     (help @askdir-help)
  188.     (default @default-dest)
  189.   )
  190. )
  191. (run ("setenv WHDLInstPath \"%s\"\ncopy ENV:WHDLInstPath ENVARC:" #dest))
  192. (set #dest (tackon #dest #prefix))
  193. (if (exists #dest) (
  194.   (set #choice
  195.     (askbool
  196.       (prompt
  197.         (cat
  198.           "\nDirectory \"" #dest "\" already exists.\n"
  199.           "Should it be deleted?"
  200.         )
  201.       )
  202.       (default 1)
  203.       (choices "Delete" "Skip")
  204.       (help @askbool-help)
  205.     )
  206.   )
  207.   (if (= #choice 1)
  208.     (run ("Delete \"%s\" \"%s.info\" All Quiet Force" #dest #dest))
  209.   )
  210. ))
  211. (makedir #dest
  212.   (help @makedir-help)
  213.   (infos)
  214. )
  215.  
  216. ;----------------------------
  217.  
  218. (copyfiles
  219.   (help @copyfiles-help)
  220.   (source ("%s.Slave" #prefix))
  221.   (dest #dest)
  222. )
  223. (set #icon 0)
  224. (if (exists ("%s.%s" #prefix #ico_suffix_11)) ((set #icon 11)(set #icnt (+ 1 #icnt))(set #icon_11 #ico_desc_11)) (set #icon_11 ""))
  225. (if (exists ("%s.%s" #prefix #ico_suffix_10)) ((set #icon 10)(set #icnt (+ 1 #icnt))(set #icon_10 #ico_desc_10)) (set #icon_10 ""))
  226. (if (exists ("%s.%s" #prefix #ico_suffix_09)) ((set #icon 9) (set #icnt (+ 1 #icnt))(set #icon_09 #ico_desc_09)) (set #icon_09 ""))
  227. (if (exists ("%s.%s" #prefix #ico_suffix_08)) ((set #icon 8) (set #icnt (+ 1 #icnt))(set #icon_08 #ico_desc_08)) (set #icon_08 ""))
  228. (if (exists ("%s.%s" #prefix #ico_suffix_07)) ((set #icon 7) (set #icnt (+ 1 #icnt))(set #icon_07 #ico_desc_07)) (set #icon_07 ""))
  229. (if (exists ("%s.%s" #prefix #ico_suffix_06)) ((set #icon 6) (set #icnt (+ 1 #icnt))(set #icon_06 #ico_desc_06)) (set #icon_06 ""))
  230. (if (exists ("%s.%s" #prefix #ico_suffix_05)) ((set #icon 5) (set #icnt (+ 1 #icnt))(set #icon_05 #ico_desc_05)) (set #icon_05 ""))
  231. (if (exists ("%s.%s" #prefix #ico_suffix_04)) ((set #icon 4) (set #icnt (+ 1 #icnt))(set #icon_04 #ico_desc_04)) (set #icon_04 ""))
  232. (if (exists ("%s.%s" #prefix #ico_suffix_03)) ((set #icon 3) (set #icnt (+ 1 #icnt))(set #icon_03 #ico_desc_03)) (set #icon_03 ""))
  233. (if (exists ("%s.%s" #prefix #ico_suffix_02)) ((set #icon 2) (set #icnt (+ 1 #icnt))(set #icon_02 #ico_desc_02)) (set #icon_02 ""))
  234. (if (exists ("%s.%s" #prefix #ico_suffix_01)) ((set #icon 1) (set #icnt (+ 1 #icnt))(set #icon_01 #ico_desc_01)) (set #icon_01 ""))
  235. (if (exists ("%s.%s" #prefix #ico_suffix_00)) ((set #icon 0) (set #icnt (+ 1 #icnt))(set #icon_00 #ico_desc_00)) (set #icon_00 ""))
  236. (procedure P_Icon
  237.   (copyfiles
  238.     (help @copyfiles-help)
  239.     (source ("%s.%s" #prefix #icon-suf))
  240.     (newname ("%s.info" #icon-name))
  241.     (dest #icon-dir)
  242.   )
  243.   (tooltype
  244.     (dest (tackon #icon-dir #icon-name))
  245.     (noposition)
  246.   )
  247. )
  248. (if (> #icnt 1) (
  249.   (if (= #newstuff 1) (
  250.     (set #icon-dir ("T:%s Icons" #prefix))
  251.     (makedir #icon-dir
  252.       (help @makedir-help)
  253.     )
  254.     (if #icon_00 ((set #icon-suf #ico_suffix_00) (set #icon-name #ico_desc_00) (P_Icon)))
  255.     (if #icon_01 ((set #icon-suf #ico_suffix_01) (set #icon-name #ico_desc_01) (P_Icon)))
  256.     (if #icon_02 ((set #icon-suf #ico_suffix_02) (set #icon-name #ico_desc_02) (P_Icon)))
  257.     (if #icon_03 ((set #icon-suf #ico_suffix_03) (set #icon-name #ico_desc_03) (P_Icon)))
  258.     (if #icon_04 ((set #icon-suf #ico_suffix_04) (set #icon-name #ico_desc_04) (P_Icon)))
  259.     (if #icon_05 ((set #icon-suf #ico_suffix_05) (set #icon-name #ico_desc_05) (P_Icon)))
  260.     (if #icon_06 ((set #icon-suf #ico_suffix_06) (set #icon-name #ico_desc_06) (P_Icon)))
  261.     (if #icon_07 ((set #icon-suf #ico_suffix_07) (set #icon-name #ico_desc_07) (P_Icon)))
  262.     (if #icon_08 ((set #icon-suf #ico_suffix_08) (set #icon-name #ico_desc_08) (P_Icon)))
  263.     (if #icon_09 ((set #icon-suf #ico_suffix_09) (set #icon-name #ico_desc_09) (P_Icon)))
  264.     (if #icon_10 ((set #icon-suf #ico_suffix_10) (set #icon-name #ico_desc_10) (P_Icon)))
  265.     (if #icon_11 ((set #icon-suf #ico_suffix_11) (set #icon-name #ico_desc_11) (P_Icon)))
  266.     (openwbobject #icon-dir)
  267.   ))
  268.   (set #icon
  269.     (askchoice
  270.       (prompt "\nWhich icon would you like to install?\n")
  271.       (choices #icon_00 #icon_01 #icon_02 #icon_03 #icon_04 #icon_05 #icon_06 #icon_07 #icon_08 #icon_09 #icon_10 #icon_11)
  272.       (default #icon)
  273.       (help @askchoice-help)
  274.     )
  275.   )
  276.   (if (= #newstuff 1) (
  277.     (closewbobject #icon-dir)
  278.     (run ("Delete \"%s\" All Quiet Force" #icon-dir))
  279.   ))
  280. ))
  281. (if (> #icnt 0) (
  282.   (select #icon
  283.     (set #icon #ico_suffix_00)
  284.     (set #icon #ico_suffix_01)
  285.     (set #icon #ico_suffix_02)
  286.     (set #icon #ico_suffix_03)
  287.     (set #icon #ico_suffix_04)
  288.     (set #icon #ico_suffix_05)
  289.     (set #icon #ico_suffix_06)
  290.     (set #icon #ico_suffix_07)
  291.     (set #icon #ico_suffix_08)
  292.     (set #icon #ico_suffix_09)
  293.     (set #icon #ico_suffix_10)
  294.     (set #icon #ico_suffix_11)
  295.   )
  296.   (copyfiles
  297.     (help @copyfiles-help)
  298.     (source ("%s.%s" #prefix #icon))
  299.     (newname ("%s.info" #prefix))
  300.     (dest #dest)
  301.   )
  302.   ;installer has problems on deleting with newicons
  303.   ;(tooltype
  304.   ;  (dest (tackon #dest #prefix))
  305.   ;  (settooltype "Slave")
  306.   ;  (settooltype "PreLoad")
  307.   ;)
  308.   (tooltype
  309.     (dest (tackon #dest #prefix))
  310.     (settooltype "PreLoad" "")
  311.     (settooltype "Slave" ("%s.Slave" #prefix))
  312.   )
  313.   (tooltype
  314.     (dest (tackon #dest #prefix))
  315.     (setdefaulttool "WHDLoad")
  316.     (setstack 10240)
  317.     (noposition)
  318.   )
  319. ))
  320. (set #copy-file #readme-file)
  321. (P_CopyFile)
  322. (set #copy-file #man-file)
  323. (P_CopyFile)
  324. (set #copy-file #hint-file)
  325. (P_CopyFile)
  326. (set #copy-file #sol-file)
  327. (P_CopyFile)
  328. (set #dest-org #dest)
  329. (if (= #sub-dir "")
  330.   ("")
  331.   (
  332.     (set #dest (tackon #dest #sub-dir))
  333.     (makedir #dest
  334.       (help @makedir-help)
  335.     )
  336.   )
  337. )
  338. (set #copy-file #highs-file)
  339. (P_CopyFile)
  340. (P_Install)
  341. (if (= #newstuff 1)
  342.   (openwbobject #dest-org)
  343. )
  344. (set @default-dest #dest-org)
  345. (exit)
  346.